#pragma once
#include <string>
#include <unordered_map>
#include <memory>

class Configuration
{
public:
    static Configuration *getInstance();

    void load(const std::string &filename);
    std::string get(const std::string &key, const std::string &defaultValue = "");
    int getInt(const std::string &key, int defaultValue = 0);

private:
    Configuration() = default;
    static std::unique_ptr<Configuration> _instance;
    std::unordered_map<std::string, std::string> _config;
};